package cn.tedu.ivos.user.service;

import cn.tedu.ivos.user.pojo.dto.UserLoginDTO;
import cn.tedu.ivos.user.pojo.dto.UserQuery;
import cn.tedu.ivos.user.pojo.dto.UserSaveDTO;
import cn.tedu.ivos.user.pojo.entity.User;
import cn.tedu.ivos.user.pojo.vo.UserVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author liyuehui
 * @time 2024/7/4 11:26
 */
public interface UserService {
    /**
     * 用户登录
     * @param: UserLoginDTO userLoginDTO
     * @return:UserVO(id,username,password)
     */
    UserVO login(UserLoginDTO userLoginDTO);

    /**
     * 新建用户
     * @param: UserLoginDTO userLoginDTO
     * @return:int
     */
    int save(UserSaveDTO userSaveDTO);

    /**
     * 重置用户密码
     * @param: Long userId
     * @return:int
     */
    int resetPassword(Long userId);

    /**
     * 查询全部用户
     * @param: UserQuery userQuery
     * @return:UserVO(id,username,password)
     */
    List<User> selectUser(UserQuery userQuery);

    /**
     * 修改用户状态
     * @param: Long userId
     * @param: String status
     * @return:int
     */
    int updateStatus(Long userId, String status);

    /**
     * 删除用户
     * @param: Long userId
     * @return:int
     */
    int delete(Long userId);

    /**
     * 查询待审批用户
     * @param: Long parentId
     * @return:List<User>
     */
    List<User> selectAudit(Long parentId);
}
